//package dsk.demo.product;
//
//import cn.hutool.core.util.StrUtil;
//import cn.hutool.http.HttpUtil;
//import cn.hutool.json.JSONArray;
//import cn.hutool.json.JSONNull;
//import cn.hutool.json.JSONObject;
//import cn.hutool.json.JSONUtil;
//import cn.hutool.poi.excel.ExcelUtil;
//import cn.hutool.poi.excel.ExcelWriter;
//import dsk.demo.product.entity.CustomerEntity;
//import dsk.demo.product.entity.CustomerLinkManEntity;
//import lombok.Data;
//import org.junit.jupiter.api.Test;
//
//import java.util.*;
//
//public class 广交会数据爬取 {
//     private static String Authorization = "9598ee6f7004671924aaee751eac9eba";
//
//    static {
//
//
//    }
//
//    @Test
//    public void 广交会数据爬取() {
//        int index = 1;
//        int maxPage = 1;
//        int fileIndex = 1;
//        ExcelWriter companyWriter = ExcelUtil.getWriter("C:\\Users\\Administrator\\Desktop\\广交会\\广交会参展商_" + fileIndex +".xls");
//        LinkedHashMap<String, String> map = new LinkedHashMap<>();
//        map.put("companyName","公司名称");
//        map.put("companyCountry","国家");
//        map.put("companyIndustry","行业");
//        map.put("contacts","联系人");
//        map.put("email","邮箱");
//        map.put("tel","电话");
//        map.put("fax","传真");
//        map.put("address","地址");
//        map.put("purchaseProduct","主营产品");
//        map.put("website","公司网站");
//        companyWriter.setHeaderAlias(map);
//        //只写入配置了别名的属性
//        companyWriter.setOnlyAlias(true);
//        while (true) {
//            if (maxPage < index) {
//                break;
//            }
//            if (index % 600 == 0) {
//                companyWriter.close();
//                fileIndex ++;
//                companyWriter = ExcelUtil.getWriter("C:\\Users\\Administrator\\Desktop\\广交会\\广交会参展商_" + fileIndex +".xls");
//                companyWriter.setHeaderAlias(map);
//                //只写入配置了别名的属性
//                companyWriter.setOnlyAlias(true);
//            }
//            //获取某个国家从中国采购的 采购商ID列表
//            Map<String,Object> jsonParams = new HashMap<>();
//            jsonParams.put("companyName","");
//            jsonParams.put("countryId",0);
//            jsonParams.put("pageIndex",index);
//            jsonParams.put("pageSize",100);
//            jsonParams.put("productTypes",new ArrayList<>());
//            jsonParams.put("surnames",new ArrayList<>());
//            String s = JSONUtil.toJsonStr(jsonParams);
//            String content = HttpUtil.createPost("https://et.topease.net/api/gt/search/getCantonFairPage")
//                    .header("Authorization",Authorization)
//                    .header("Host","et.topease.net")
//                    .header("Origin","https://et.topease.net")
////                .header("Referer","https://et.topease.net/gt5/company/result?c=46&sort=intelligent")
//                    .header("User-Agent","Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/111.0")
//                    .header("Pragma","no-cache")
//                    .header("Connection","keep-alive")
//                    .header("Cache-Control","no-cache")
//                    .header("Accept-Encoding","gzip, deflate, br")
//                    .header("Accept-Language","zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2")
//                    .header("Sec-Fetch-Dest","empty")
//                    .header("Sec-Fetch-Mode","cors")
//                    .header("Sec-Fetch-Site","same-origin")
//                    .header("Content-Type","application/json")
//                    .header("Accept","application/json, text/plain, */*")
//                    .header("website","https://et.topease.net")
//                    .body(s)
//                    .execute().body();
//            Map result = JSONUtil.toBean(content,Map.class);
//            maxPage = ((int)((Map) result.get("data")).get("total"))/100 + 1;
//            JSONArray hsList = (JSONArray)((Map) result.get("data")).get("result");
//            ArrayList<buyer> arrayList = new ArrayList();
//            for (Object o : hsList) {
//                if(o instanceof JSONObject) {
//                    String companyName = getByJsonObj((JSONObject) o, "companyName");
//                    String companyCountry = getByJsonObj((JSONObject) o, "companyCountry");
//                    String companyIndustry = getByJsonObj((JSONObject) o, "companyIndustry");
//                    String contacts = getByJsonObj((JSONObject) o, "contacts");
//                    String email = getByJsonObj((JSONObject) o, "email");
//                    String tel = getByJsonObj((JSONObject) o, "tel");
//                    String fax = getByJsonObj((JSONObject) o, "fax");
//                    String address = getByJsonObj((JSONObject) o, "address");
//                    String purchaseProduct = getByJsonObj((JSONObject) o, "purchaseProduct");
//                    String website = getByJsonObj((JSONObject) o, "website");
//                    buyer buyer = new buyer();
//                    buyer.setCompanyName(companyName);
//                    buyer.setCompanyCountry(companyCountry);
//                    buyer.setCompanyIndustry(companyIndustry);
//                    buyer.setContacts(contacts);
//                    buyer.setEmail(email);
//                    buyer.setTel(tel);
//                    buyer.setFax(fax);
//                    buyer.setAddress(address);
//                    buyer.setPurchaseProduct(purchaseProduct);
//                    buyer.setWebsite(website);
//                    arrayList.add(buyer);
//                    System.out.println(buyer);
//                }
//            }
//            companyWriter.write(arrayList,false);
//            companyWriter.flush();
//            index++;
//        }
//
//    }
//
//
//
//
//
//
//
//
//
//    public String getByJsonObj(JSONObject obj,String key) {
//        Object o = obj.get(key);
//        if (o instanceof JSONNull) {
//            return "";
//        } else {
//            if (StrUtil.isBlank((String)o)) {
//                return "";
//            }
//            return (String)o;
//        }
//    }
//
//    public boolean getCountOfChar(String str,String ch) {
//        return str.indexOf(ch) == str.lastIndexOf(ch);
//    }
//
//    @Data
//    public static class buyer{
//        String companyName;
//        String companyCountry ;
//        String companyIndustry;
//        String contacts;
//        String email ;
//        String tel;
//        String fax;
//        String address ;
//        String purchaseProduct;
//        String website ;
//    }
//
//}
